package com.ozo.easy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ozo.easy.common.model.BaseBatchDTO;
import com.ozo.easy.entity.SysDictType;
import com.ozo.easy.pojo.dto.SysDictTypeQueryDTO;
import com.ozo.easy.pojo.dto.SysDictTypeSaveDTO;
import com.ozo.easy.pojo.vo.SysDictDataVO;
import com.ozo.easy.pojo.vo.SysDictTypeVO;

import java.util.List;

/**
 * 字典类型 服务类
 *
 * @author ozo
 * @version 1.0
 * @date 2025-01-21 10:37:26
 */
public interface ISysDictTypeService extends IService<SysDictType> {

    /**
     * 添加字典类型
     *
     * @param saveDTO
     */
    void add(SysDictTypeSaveDTO saveDTO);

    /**
     * 删除字典类型
     *
     * @param batchDTO
     */
    void remove(BaseBatchDTO<Long> batchDTO);

    /**
     * 编辑字典类型
     *
     * @param saveDTO
     */
    void edit(SysDictTypeSaveDTO saveDTO);

    /**
     * 字典类型分页
     *
     * @param queryDTO
     * @return
     */
    List<SysDictTypeVO> list(SysDictTypeQueryDTO queryDTO);

    /**
     * 启用字典类型
     *
     * @param id
     */
    void enable(Long id);

    /**
     * 字典类型详情
     *
     * @param id
     * @return
     */
    SysDictTypeVO detail(Long id);

    /**
     * 查询字典类型
     *
     * @return
     */
    List<SysDictTypeVO> listType();

    /**
     * 查询字典类型带数据
     *
     * @return
     */
    List<SysDictTypeVO> listTypeWithData();

    /**
     * 查询数据字典
     *
     * @param dictCode
     * @return
     */
    List<SysDictDataVO> listData(String dictCode);

}
